#ifndef EGG_GUIMANAGER_H
#define EGG_GUIMANAGER_H

#include "MyGUI_EggPlatform.h"
#include "MyGUI_EggRenderManager.h"

namespace egg{

    class GUIManager:public Singleton<GUIManager>{
        friend class Singleton<GUIManager>;
    public:
        void startup();
        void shutdown();
        void runFrame();
        void setSize(uint32 _w,uint32 _h);

        inline MyGUI::InputManager* getInputManager(){
            return mInputMgr;
        }
        inline MyGUI::Gui* getGUI(){
            return mGUI;
        }
    protected:
        MyGUI::Gui* mGUI;
        MyGUI::EggPlatform* mPlatform;
        MyGUI::EggDataManager* mDataMgr;
        MyGUI::InputManager* mInputMgr;
        MyGUI::EggRenderManager* mRenderMgr;
    };

    typedef shared_ptr<GUIManager> GUIManagerPtr;

}

#endif